import java.awt.event.*;

public class EventHandler { //abweichung von Aufgabenstellung
	private Clock clock;
	public Ticker ticker;
	private ClockFrame view;  
	private Thread t=null;
	
	EventHandler(){
		this.view = new ClockFrame("Stoppuhr");
		this.clock = new Clock(view);
		this.ticker = new Ticker(clock);
		initButtons( this.view );
	}
	
	EventHandler(ClockFrame clockFrame, Ticker ticker, Clock clock){
		this.view = clockFrame;
		this.ticker = ticker;
		this.clock = clock;
		initButtons(this.view);
	}
	
	void initButtons( ClockFrame view ){
		view.BStart.addActionListener(new HandleBStart() );
		view.BStop.addActionListener(new HandleBStop() );
		view.BNull.addActionListener(new HandleBNull());
		view.BClose.addActionListener(new HandleBClose());
	}

	class HandleBStart implements ActionListener{
		public void actionPerformed(ActionEvent evt){
			System.out.println("BStart gedrückt");
			if(t==null){
				
				t = new Thread(ticker);
				t.start();
				//clock.startTime=System.currentTimeMillis();
			}else{
				System.out.println("Der DAU hat schon wieder auf Start gedrückt. So ein Held :D.");
			}
		}
	}
	class HandleBStop implements ActionListener{
		public void actionPerformed(ActionEvent evt){
			//System.out.println("BStop gedrückt");
			if( null != t){
				t.interrupt();
				//lock=t.isInterrupted()?false:true;
				t=null;
				clock.stop();
			}
			else
				System.out.println("Der DAU hat schon wieder Stopp gedrückt obwohl gar nix lief. So ein Held :D");
		}
	}
	class HandleBNull implements ActionListener{
		public void actionPerformed(ActionEvent evt){
			System.out.println("BNull gedrückt");
			clock.reset();
		}
	}
	class HandleBClose implements ActionListener{
		public void actionPerformed(ActionEvent evt){
			System.out.println("BClose gedrückt");
		if(t!=null){
				t.interrupt();
			}
			System.exit(0);
		
		}
	}
	
	
}
